/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entities;

import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author ADMIN
 */
@Entity
@Table(name = "cliente", catalog = "SIESCO", schema = "dbo")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Cliente.findAll", query = "SELECT c FROM Cliente c"),
    @NamedQuery(name = "Cliente.findByIdcliente", query = "SELECT c FROM Cliente c WHERE c.idcliente = :idcliente"),
    @NamedQuery(name = "Cliente.findByNit", query = "SELECT c FROM Cliente c WHERE c.nit = :nit"),
    @NamedQuery(name = "Cliente.findByIdcategoria", query = "SELECT c FROM Cliente c WHERE c.idcategoria = :idcategoria"),
    @NamedQuery(name = "Cliente.findByNombrecliente", query = "SELECT c FROM Cliente c WHERE c.nombrecliente = :nombrecliente"),
    @NamedQuery(name = "Cliente.findByGiro", query = "SELECT c FROM Cliente c WHERE c.giro = :giro"),
    @NamedQuery(name = "Cliente.findByDireccion", query = "SELECT c FROM Cliente c WHERE c.direccion = :direccion"),
    @NamedQuery(name = "Cliente.findByInfoadicional", query = "SELECT c FROM Cliente c WHERE c.infoadicional = :infoadicional"),
    @NamedQuery(name = "Cliente.findByLugarderecepcion", query = "SELECT c FROM Cliente c WHERE c.lugarderecepcion = :lugarderecepcion"),
    @NamedQuery(name = "Cliente.findByLugarderetiro", query = "SELECT c FROM Cliente c WHERE c.lugarderetiro = :lugarderetiro"),
    @NamedQuery(name = "Cliente.findByProductoestrella", query = "SELECT c FROM Cliente c WHERE c.productoestrella = :productoestrella"),
    @NamedQuery(name = "Cliente.findByOtrosproductos", query = "SELECT c FROM Cliente c WHERE c.otrosproductos = :otrosproductos"),
    @NamedQuery(name = "Cliente.findByMercadoexportacion", query = "SELECT c FROM Cliente c WHERE c.mercadoexportacion = :mercadoexportacion"),
    @NamedQuery(name = "Cliente.findByPorcentajeexportacion", query = "SELECT c FROM Cliente c WHERE c.porcentajeexportacion = :porcentajeexportacion")})
public class Cliente implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "idcliente", nullable = false)
    private Integer idcliente;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "nit", nullable = false, length = 20)
    private String nit;
    @Basic(optional = false)
    @NotNull
    @Column(name = "idcategoria", nullable = false)
    private int idcategoria;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "nombrecliente", nullable = false, length = 50)
    private String nombrecliente;
    @Size(max = 50)
    @Column(name = "giro", length = 50)
    private String giro;
    @Size(max = 100)
    @Column(name = "direccion", length = 100)
    private String direccion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "infoadicional", nullable = false, length = 50)
    private String infoadicional;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "lugarderecepcion", nullable = false, length = 50)
    private String lugarderecepcion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "lugarderetiro", nullable = false, length = 50)
    private String lugarderetiro;
    @Size(max = 50)
    @Column(name = "productoestrella", length = 50)
    private String productoestrella;
    @Size(max = 50)
    @Column(name = "otrosproductos", length = 50)
    private String otrosproductos;
    @Size(max = 50)
    @Column(name = "mercadoexportacion", length = 50)
    private String mercadoexportacion;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "porcentajeexportacion", precision = 53)
    private Double porcentajeexportacion;

    public Cliente() {
    }

    public Cliente(Integer idcliente) {
        this.idcliente = idcliente;
    }

    public Cliente(Integer idcliente, String nit, int idcategoria, String nombrecliente, String infoadicional, String lugarderecepcion, String lugarderetiro) {
        this.idcliente = idcliente;
        this.nit = nit;
        this.idcategoria = idcategoria;
        this.nombrecliente = nombrecliente;
        this.infoadicional = infoadicional;
        this.lugarderecepcion = lugarderecepcion;
        this.lugarderetiro = lugarderetiro;
    }

    public Integer getIdcliente() {
        return idcliente;
    }

    public void setIdcliente(Integer idcliente) {
        this.idcliente = idcliente;
    }

    public String getNit() {
        return nit;
    }

    public void setNit(String nit) {
        this.nit = nit;
    }

    public int getIdcategoria() {
        return idcategoria;
    }

    public void setIdcategoria(int idcategoria) {
        this.idcategoria = idcategoria;
    }

    public String getNombrecliente() {
        return nombrecliente;
    }

    public void setNombrecliente(String nombrecliente) {
        this.nombrecliente = nombrecliente;
    }

    public String getGiro() {
        return giro;
    }

    public void setGiro(String giro) {
        this.giro = giro;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getInfoadicional() {
        return infoadicional;
    }

    public void setInfoadicional(String infoadicional) {
        this.infoadicional = infoadicional;
    }

    public String getLugarderecepcion() {
        return lugarderecepcion;
    }

    public void setLugarderecepcion(String lugarderecepcion) {
        this.lugarderecepcion = lugarderecepcion;
    }

    public String getLugarderetiro() {
        return lugarderetiro;
    }

    public void setLugarderetiro(String lugarderetiro) {
        this.lugarderetiro = lugarderetiro;
    }

    public String getProductoestrella() {
        return productoestrella;
    }

    public void setProductoestrella(String productoestrella) {
        this.productoestrella = productoestrella;
    }

    public String getOtrosproductos() {
        return otrosproductos;
    }

    public void setOtrosproductos(String otrosproductos) {
        this.otrosproductos = otrosproductos;
    }

    public String getMercadoexportacion() {
        return mercadoexportacion;
    }

    public void setMercadoexportacion(String mercadoexportacion) {
        this.mercadoexportacion = mercadoexportacion;
    }

    public Double getPorcentajeexportacion() {
        return porcentajeexportacion;
    }

    public void setPorcentajeexportacion(Double porcentajeexportacion) {
        this.porcentajeexportacion = porcentajeexportacion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idcliente != null ? idcliente.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Cliente)) {
            return false;
        }
        Cliente other = (Cliente) object;
        if ((this.idcliente == null && other.idcliente != null) || (this.idcliente != null && !this.idcliente.equals(other.idcliente))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entities.Cliente[ idcliente=" + idcliente + " ]";
    }
    
}
